﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Caching;
using System.Web.UI.WebControls;
using www.Core.Contract.DataContract;
//using www.SService;

namespace www.Admin
{
    public partial class Type : System.Web.UI.Page
    {
        //#region Value
        ////   private readonly SServices _services = new SServices();
        //private readonly ObjectCache _cache = MemoryCache.Default;
        //static bool _insert = false;
        //private static List<RelaxTypeDataContract> _lAdvertiseValue;
        //private readonly HyServicesClient _service = new HyServicesClient();
        //static int _id = 0;
        //private static Boolean _insertNew = false;
        //#endregion

        //#region Contructor

        //protected void Page_Load(object sender, EventArgs e)
        //{
        //    //ddlgroups.SelectedIndexChanged += ddlgroups_SelectedIndexChanged;
        //    if (Cache["Language"] == null)
        //    {
        //        var lLanguage = _service.GetLanguageDataContracts();
        //        if (lLanguage.Any())
        //            Cache.Insert("Language", lLanguage, null, DateTime.MaxValue, TimeSpan.FromDays(30));
        //    }

        //    if (!IsPostBack)
        //    {
        //        var lLanguages = (List<RelaxLanguageDataContract>)Cache["Language"];
        //        if (lLanguages != null)
        //        {
        //            var lReturn = lLanguages.Where(l => l.Id != Convert.ToInt32(Session["LanguageCode"]) && l.Type == Convert.ToInt32(Session["LanguageType"]));
        //            Addlist(lReturn);
        //        }

        //        LoadData();
        //    }
        //}
        //#endregion

        //#region Event

        //protected void lbtinsert_Click(object sender, EventArgs e)
        //{
        //    pnviews.Visible = false;
        //    pncontrols.Visible = true;
        //    Donew();
        //    _insert = true;
        //    _id = 0;
        //    _lAdvertiseValue = null;
        //    grvNgonngu.DataSource = null;
        //    grvNgonngu.DataBind();
        //}

        //protected void lbtback_Click(object sender, EventArgs e)
        //{
        //    try
        //    {
        //        Back();
        //    }
        //    catch (Exception)
        //    {

        //    }
        //}

        //protected void lbtrefresh_Click(object sender, EventArgs e)
        //{
        //    try
        //    {
        //        LoadData();
        //    }
        //    catch (Exception)
        //    {

        //    }

        //}

        //protected void lbtdel_Click(object sender, EventArgs e)
        //{
        //    try
        //    {
        //        Delete();
        //    }
        //    catch (Exception)
        //    {

        //    }

        //}

        //protected void grid_advertise_PageIndexChanging(object sender, GridViewPageEventArgs e)
        //{
        //    try
        //    {
        //        grid_Type.PageIndex = e.NewPageIndex;
        //        LoadData();
        //    }
        //    catch (Exception)
        //    {

        //    }
        //}
        //protected void ddlgroup_SelectedIndexChanged(object sender, EventArgs e)
        //{
        //    LoadData();
        //}

        //protected void grid_advertise_RowCommand(object sender, GridViewCommandEventArgs e)
        //{
        //    try
        //    {
        //        _id = Convert.ToInt32(e.CommandArgument.ToString());
        //        var lData = (List<RelaxTypeDataContract>)_cache["Type"];
        //        if (lData == null)
        //            return;
        //        var first = lData.FirstOrDefault(p => p.Id == _id && p.Languagecode == Convert.ToInt32(Session["LanguageCode"]));
        //        if (first == null)
        //            return;
        //        if (e.CommandName == "cmd_edit")
        //        {

        //            txtname.Value = first.Name;
        //            txtdecription.Value = first.Decription;
        //            txtord.Value = first.Ord.ToString();
        //            chkactive.Checked = first.Active == 1;

        //            var lValue = lData.Where(p => p.Id == _id && p.Languagecode != Convert.ToInt32(Session["LanguageCode"])).ToList();
        //            _lAdvertiseValue = lValue;
        //            var lReturn = from c in lValue
        //                          select new { c.Active, c.Decription, c.Id, c.Languagecode, c.Name, c.Ord, c.Tag };

        //            grvNgonngu.DataSource = lReturn.ToList();
        //            grvNgonngu.DataBind();

        //            pncontrols.Visible = true;
        //            pnviews.Visible = false;
        //            _insert = false;

        //        }
        //        else if (e.CommandName == "cmd_delete")
        //        {

        //            DeleteLanguage(Convert.ToInt32(Session["LanguageCode"]));

        //            lData.Remove(first);
        //            _cache["Type"] = lData;
        //            LoadData();
        //            Message("Xóa Thành Công");
        //            _id = 0;
        //            _lAdvertiseValue = null;

        //        }
        //        else if (e.CommandName == "cmd_active")
        //        {
        //            first.Active = first.Active == 1 ? 0 : 1;

        //            _service.UpdateType(new List<RelaxTypeDataContract> { first });
        //            _cache["Type"] = lData;
        //            LoadData();
        //            Message("Cập nhật Thành Công");

        //            _id = 0;
        //            _lAdvertiseValue = null;
        //        }
        //    }
        //    catch (Exception)
        //    {

        //    }
        //}

        //protected void grvNgonngu_RowCommand(object sender, GridViewCommandEventArgs e)
        //{
        //    try
        //    {
        //        var languageCode = e.CommandArgument.ToString();

        //        //var first = _lAdvertiseValue.FirstOrDefault(p => p.Languagecode == Convert.ToInt32(languageCode));
        //        //if (first == null)
        //        //    return;
        //        if (e.CommandName == "cmd_edit")
        //        {
        //            EditLanguage(Convert.ToInt32(languageCode));
        //            _insertNew = true;
        //        }
        //        else if (e.CommandName == "cmd_delete")
        //        {
        //            DeleteLanguage(Convert.ToInt32(languageCode));
        //        }
        //    }
        //    catch (Exception)
        //    {

        //    }
        //}

        //protected void lbtsave_Click(object sender, EventArgs e)
        //{
        //    try
        //    {
        //        Save();
        //    }
        //    catch (Exception)
        //    {

        //    }
        //}

        //protected void lbtdonew_Click(object sender, EventArgs e)
        //{
        //    try
        //    {
        //        Donew();
        //    }
        //    catch (Exception)
        //    {

        //    }

        //}

        //protected void btnThemValue_Click(object sender, EventArgs e)
        //{
        //    try
        //    {
        //        var lData = (List<RelaxTypeDataContract>)_cache["Type"];
        //        InsertLanguageCode(lData, _id);
        //        txtName_Value.Value = txtDecription_Value.Value = string.Empty;
        //        _insertNew = false;
        //    }
        //    catch (Exception)
        //    {

        //    }
        //}
        //#endregion

        //#region Business

        //private void Addlist(IEnumerable<RelaxLanguageDataContract> lLanguageDataContracts)
        //{
        //    ddlLanguage.Items.Clear();
        //    ddlLanguage.Items.Add(new ListItem("---Chọn---", "0"));
        //    foreach (var item in lLanguageDataContracts)
        //    {
        //        var items = new ListItem(item.Name, item.Id.ToString());
        //        ddlLanguage.Items.Add(items);
        //    }

        //}
        //private void InsertLanguageCode(IEnumerable<RelaxTypeDataContract> lData, int iD = 0)
        //{

        //    if (!string.IsNullOrEmpty(ddlLanguage.Value))
        //    {
        //        if (iD > 0)
        //        {
        //            if (_lAdvertiseValue == null)
        //            {
        //                if (lData != null)
        //                {
        //                    var lVaue =
        //                        lData.Where(p => p.Id == iD && p.Languagecode != Convert.ToInt32(Session["LanguageCode"])).ToList();
        //                    if (!lVaue.Any())
        //                        lVaue = new List<RelaxTypeDataContract>();
        //                    _lAdvertiseValue = lVaue;
        //                }
        //                else
        //                    _lAdvertiseValue = new List<RelaxTypeDataContract>();
        //            }

        //            var languageCode = Convert.ToInt32(ddlLanguage.Value);
        //            var check = _lAdvertiseValue.Where(p => p.Languagecode == languageCode).ToList();
        //            if (check.Any())
        //            {
        //                if (_insertNew)
        //                {
        //                    var firstordefault = check.FirstOrDefault();
        //                    if (firstordefault != null)
        //                    {
        //                        firstordefault.Languagecode = languageCode;
        //                        firstordefault.Name = txtName_Value.Value;
        //                        firstordefault.Tag = txtName_Value.Value.Replace(' ', '-');
        //                        firstordefault.Decription = txtDecription_Value.Value;
        //                    }
        //                }
        //                else
        //                {
        //                    Message("Ngôn ngữ này đã tồn tại.");
        //                    return;
        //                }
        //            }
        //            else
        //            {
        //                var advertise = new RelaxTypeDataContract
        //                {
        //                    Languagecode = languageCode,
        //                    Name = txtName_Value.Value,
        //                    Tag = txtName_Value.Value.Replace(' ', '-'),
        //                    Decription = txtDecription_Value.Value
        //                };
        //                _lAdvertiseValue.Add(advertise);
        //            }

        //        }
        //        else
        //        {
        //            if (_lAdvertiseValue == null)
        //                _lAdvertiseValue = new List<RelaxTypeDataContract>();

        //            var languageCode = Convert.ToInt32(ddlLanguage.Value);
        //            var check = _lAdvertiseValue.Where(p => p.Languagecode == languageCode).ToList();
        //            if (check.Any())
        //            {
        //                if (_insertNew)
        //                {
        //                    var firstordefault = check.FirstOrDefault();
        //                    if (firstordefault != null)
        //                    {
        //                        firstordefault.Languagecode = languageCode;
        //                        firstordefault.Name = txtName_Value.Value;
        //                        firstordefault.Tag = txtName_Value.Value.Replace(' ', '-');
        //                        firstordefault.Decription = txtDecription_Value.Value;
        //                    }
        //                }
        //                else
        //                {
        //                    Message("Ngôn ngữ này đã tồn tại.");
        //                    return;
        //                }
        //            }
        //            else
        //            {
        //                var advertise = new RelaxTypeDataContract
        //                {
        //                    Languagecode = languageCode,
        //                    Name = txtName_Value.Value,
        //                    Tag = txtName_Value.Value.Replace(' ', '-'),
        //                    Decription = txtDecription_Value.Value
        //                };
        //                _lAdvertiseValue.Add(advertise);
        //            }

        //        }
        //        grvNgonngu.DataSource = _lAdvertiseValue;
        //        grvNgonngu.DataBind();

        //    }
        //    else
        //    {
        //        Message("Bạn phải chọn ngôn ngữ.");
        //    }
        //}

        //private void EditLanguage(int iLanguageCode)
        //{
        //    if (iLanguageCode <= 0) return;
        //    var first = _lAdvertiseValue.FirstOrDefault(p => p.Languagecode == iLanguageCode);
        //    if (first != null)
        //    {
        //        txtName_Value.Value = first.Name;
        //        txtDecription_Value.Value = first.Decription;
        //        ddlLanguage.Value = first.Languagecode.ToString();
        //    }
        //}
        //private void DeleteLanguage(int iLanguageCode)
        //{

        //    if (iLanguageCode <= 0) return;

        //    if (_id > 0)
        //    {
        //        _service.DeleteType(new List<long> { _id }, iLanguageCode);
        //        if (_lAdvertiseValue != null)
        //        {
        //            var first = _lAdvertiseValue.FirstOrDefault(p => p.Languagecode == iLanguageCode);
        //            _lAdvertiseValue.Remove(first);
        //        }
        //    }
        //    else
        //    {
        //        if (_lAdvertiseValue != null)
        //        {
        //            var first = _lAdvertiseValue.FirstOrDefault(p => p.Languagecode == iLanguageCode);
        //            _lAdvertiseValue.Remove(first);
        //        }
        //    }
        //    grvNgonngu.DataSource = _lAdvertiseValue;
        //    grvNgonngu.DataBind();
        //}
        //private void Save()
        //{
        //    try
        //    {
        //        if (string.IsNullOrEmpty(txtname.Value) ||
        //            string.IsNullOrEmpty(txtord.Value) || string.IsNullOrEmpty(txtdecription.Value))
        //        {
        //            Message("Bạn phải nhập đầy đủ thông tin gợi ý trên");
        //            return;
        //        }
        //        var lData = (List<RelaxTypeDataContract>)_cache["Type"];

        //        var ac = chkactive.Checked ? 1 : 0;

        //        if (_insert == false)
        //        {
        //            var lUpdate = new List<RelaxTypeDataContract>();
        //            if (lData == null)
        //                return;
        //            var first =
        //                lData.FirstOrDefault(
        //                    p => p.Id == _id && p.Languagecode == Convert.ToInt32(Session["LanguageCode"]));
        //            if (first == null)
        //                return;

        //            var advertise = new RelaxTypeDataContract
        //            {
        //                Id = _id,
        //                Active = ac,
        //                Ord = string.IsNullOrEmpty(txtord.Value) ? 0 : Convert.ToInt32(txtord.Value),
        //                Name = txtname.Value,
        //                Tag = txtname.Value.Replace(' ', '-'),
        //                Decription = txtdecription.Value,
        //                Languagecode = Convert.ToInt32(Session["LanguageCode"])
        //            };
        //            lUpdate.Add(advertise);

        //            if (grvNgonngu.Rows.Count > 0)
        //            {
        //                for (var i = 0; i < grvNgonngu.Rows.Count; i++)
        //                {
        //                    var languageCode =
        //                        Convert.ToInt32(
        //                            ((Label)grvNgonngu.Rows[i].FindControl("lblLanguageCode")).Text);
        //                    var names = ((Label)grvNgonngu.Rows[i].FindControl("lblName_Values")).Text;
        //                    advertise = new RelaxTypeDataContract
        //                    {
        //                        Id = first.Id,
        //                        Languagecode = languageCode,
        //                        Name = names,
        //                        Tag = names.Replace(' ', '-'),
        //                        Decription = ((Label)grvNgonngu.Rows[i].FindControl("lblDetail_Values")).Text
        //                    };
        //                    lUpdate.Add(advertise);
        //                }
        //            }
        //            _service.UpdateType(lUpdate);

        //            foreach (var item in lUpdate)
        //            {
        //                var firstordefault = lData.FirstOrDefault(p => p.Id == item.Id && p.Languagecode == item.Languagecode);
        //                if (firstordefault != null)
        //                {
        //                    firstordefault.Name = item.Name;
        //                    firstordefault.Tag = item.Tag;
        //                    firstordefault.Ord = item.Ord;
        //                    firstordefault.Decription = item.Decription;
        //                    firstordefault.Active = item.Active;
        //                }
        //                else
        //                {
        //                    lData.Add(item);
        //                }
        //            }

        //            _cache["Type"] = lData;
        //            Message("Sửa Thành Công !");
        //            _id = 0;
        //            _lAdvertiseValue = null;
        //            pncontrols.Visible = false;
        //            pnviews.Visible = true;
        //        }
        //        else
        //        {
        //            var lAdd = new List<RelaxTypeDataContract>();
        //            var advertise = new RelaxTypeDataContract
        //            {
        //                Active = ac,
        //                Name = txtname.Value,
        //                Tag = txtname.Value.Replace(' ', '-'),
        //                Decription = txtdecription.Value,
        //                Ord = string.IsNullOrEmpty(txtord.Value) ? 0 : Convert.ToInt32(txtord.Value),
        //                Languagecode = Convert.ToInt32(Session["LanguageCode"])
        //            };

        //            lAdd.Add(advertise);
        //            if (grvNgonngu.Rows.Count > 0)
        //            {
        //                for (var i = 0; i < grvNgonngu.Rows.Count; i++)
        //                {
        //                    var languageCode =
        //                        Convert.ToInt32(
        //                            ((Label)grvNgonngu.Rows[i].FindControl("lblLanguageCode")).Text);
        //                    var names = ((Label)grvNgonngu.Rows[i].FindControl("lblName_Values")).Text;
        //                    var advertiseValue = new RelaxTypeDataContract
        //                    {
        //                        Languagecode = languageCode,
        //                        Name = names,
        //                        Tag = names.Replace(' ', '-'),
        //                        Decription = ((Label)grvNgonngu.Rows[i].FindControl("lblDetail_Values")).Text
        //                    };

        //                    lAdd.Add(advertiseValue);
        //                }

        //            }

        //            var lId = _service.AddType(lAdd);
        //            foreach (var item in lAdd)
        //            {
        //                item.Id = lId;
        //            }

        //            if (lData == null)
        //                lData = new List<RelaxTypeDataContract>();
        //            lData.AddRange(lAdd);
        //            _cache["Type"] = lData;

        //            LoadData();
        //            Message("Thêm Thành Công !");
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        Message(ex.Message);
        //    }
        //}
        //private void Back()
        //{
        //    pnviews.Visible = true;
        //    pncontrols.Visible = false;
        //    _insert = false;
        //    _id = 0;
        //    _lAdvertiseValue = null;
        //    _insertNew = false;
        //}

        //private void Delete()
        //{
        //    try
        //    {
        //        if (grid_Type.Rows.Count <= 0) return;
        //        var hang = 0;
        //        var lAd = new List<long>();
        //        for (var i = 0; i < grid_Type.Rows.Count; ++i)
        //        {
        //            var chkselect = ((CheckBox)grid_Type.Rows[i].FindControl("chkselect")).Checked;
        //            if (chkselect)
        //            {
        //                var id = ((Label)grid_Type.Rows[i].FindControl("lblid")).Text;
        //                lAd.Add(Convert.ToInt32(id));
        //            }
        //        }
        //        _service.DeleteType(lAd, Convert.ToInt32(Session["LanguageCode"]));
        //        var lData = (List<RelaxTypeDataContract>)_cache["Type"];
        //        if (lData.Any())
        //        {
        //            foreach (var id in lAd)
        //            {
        //                var first = lData.FirstOrDefault(p => p.Id == id);
        //                if (first != null)
        //                    lData.Remove(first);
        //                hang++;
        //            }

        //        }

        //        if (hang != 0)
        //        {
        //            Message("Có " + hang + "bản ghi được Xóa Thành Công");
        //        }
        //        else
        //        {
        //            Message("Không có bản ghi nào được xóa !");

        //        }
        //        LoadData();
        //    }
        //    catch { }
        //}
        //public void LoadData()
        //{
        //    grid_Type.DataSourceID = null;
        //    if (_cache["Type"] == null)
        //    {
        //        var lData = _service.GeTypeDataContracts();
        //        if (lData.Any())
        //        {
        //            var policy = new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.AddHours(1) };
        //            _cache.Set("Type", lData, policy);
        //            var lReturn = from c in lData.Where(p => p.Languagecode == Convert.ToInt32(Session["LanguageCode"]))
        //                          select new { c.Active, c.Decription, c.Id, c.Languagecode, c.Name, c.Ord, c.Tag };
        //            grid_Type.DataSource = lReturn.ToList();
        //            grid_Type.DataBind();
        //        }
        //    }
        //    else
        //    {
        //        var lData = (List<RelaxTypeDataContract>)_cache["Type"];
        //        var lReturn = from c in lData.Where(p => p.Languagecode == Convert.ToInt32(Session["LanguageCode"]))
        //                      select new { c.Active, c.Decription, c.Id, c.Languagecode, c.Name, c.Ord, c.Tag };
        //        grid_Type.DataSource = lReturn.ToList();
        //        grid_Type.DataBind();

        //    }

        //}


        //private void Donew()
        //{
        //    chkactive.Checked = false;
        //    txtdecription.Value = "";
        //    txtname.Value = "";
        //    txtName_Value.Value = "";
        //    txtDecription_Value.Value = "";
        //    txtord.Value = "";

        //    txtname.Focus();
        //}
        //private void Message(string str)
        //{
        //    Response.Write("<script>alert('" + str + "');</script>");
        //}
        //#endregion
    }
}